Here we perform a first pass look at the data. We will plot some high-level statistics and see where the various perturbations fall with respect to these readouts. We expect to see that for all readouts, the non-targeting experiments display a central distribution, with most perturbations falling nearby. Perturbations that impact the statistics are expected to appear as outliers.
library(magrittr)
library(tidyverse)
library(cowplot)
library(plotly)
library(ggbeeswarm)
library(Matrix)
library(matrixStats)
library(SingleCellExperiment)
set.seed(20210818)
FILE_SCE_TX="data/sce/kd6_essential.annot.txs.Rds"
sce <- readRDS(FILE_SCE_TX)
Among our statistics, we will compute the percentage of UMIs corresponding to specific isoform classes, including IPA, proximal, and distal, as well as UMIs from mitochondrial genes.
idx_mt <- rowRanges(sce) %>%
unlist %>% as_tibble %>%
mutate(is_mt=seqnames == "chrM") %>%
select(transcript_id, is_mt) %>%
deframe() %>%
`[`(rownames(sce))
df_cells <- colData(sce) %>% as_tibble %>%
mutate(umis_total=colSums(counts(sce)),
pct_ipa=colSums(counts(sce[rowData(sce)$is_ipa,]))/umis_total,
pct_proximal=colSums(counts(sce[rowData(sce)$is_proximal,]))/umis_total,
pct_distal=colSums(counts(sce[rowData(sce)$is_distal,]))/umis_total,
pct_novel=colSums(counts(sce[rowData(sce)$is_novel,]))/umis_total,
pct_mt=colSums(counts(sce[idx_mt,]))/umis_total)
df_cells %>%
ggplot(aes(x=UMI_count, y=umis_total)) +
geom_density2d_filled() +
geom_abline(linetype='dashed', color="white") +
scale_x_log10(expand=c(0,0)) + scale_y_log10(expand=c(0,0)) +
scale_fill_viridis_d(option="F") +
theme_bw() +
labs(x="UMI counts per cell [published]",
y="UMI counts per cell [scUTRquant]") +
guides(fill='none')
The scUTRquant QC showed the elbow plots were not well defined for Lanes 21 and 48, which led to very high numbers of barcodes being called as cells. We hope to see that these samples do not have a high number of annotation cells.
df_cells %>%
mutate(sample_id=fct_infreq(sample_id.x)) %>%
ggplot(aes(y=sample_id)) +
geom_bar(fill='lightgrey', color='black', size=0.2) +
scale_x_continuous(expand=c(0,0,0.05,0)) +
theme_bw() +
labs(x="Cells", y="Sample")
The low cell count for those two runs (21, 48) is consistent with an effective filtering process in the original data processing, since we retain only the cells that were annotated there. Seeing Lane 4 also with low cell counts was not expected. Reviewing the scUTRquant QC, the shape of the UMI vs barcode plot is normal, though is shifted, indicating that the quality of preparation was consistent with the majority of samples, only that perhaps fewer cells were loaded in the Chromium lane.
df_cells %>%
mutate(target_gene=fct_infreq(target_gene)) %>%
dplyr::count(target_gene, name="n_cells") %>%
filter(target_gene != 'non-targeting') %>%
ggplot(aes(x=target_gene, y=n_cells)) +
geom_bar(stat='identity', fill='grey', width=1) +
scale_y_log10(expand=c(0,0,0.05,0)) +
theme_bw() +
theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) +
labs(x="Target Gene", y="Cells")
There are several perturbations that have extremely low cell counts. Generally, we have used a rule of thumb of at least 200 cells per condition as a lower bound for performing transcriptome-wide differential transcript usage testing (with scUTRboot).
Instead, for the majority of perturbations, we may only be able to characterize high-level changes in transcriptome characteristics rather than at gene-level resolution.
We will explore whether any perturbations have effects on basic transcriptome characteristics. These will also be compared against each other.
df_targets <- df_cells %>%
group_by(target_gene, target_gene_id, sgID_AB) %>%
summarize(mean_umis_total=mean(umis_total),
pct_ipa=weighted.mean(pct_ipa, umis_total),
pct_proximal=weighted.mean(pct_proximal, umis_total),
pct_distal=weighted.mean(pct_distal, umis_total),
pct_mt=weighted.mean(pct_mt, umis_total), .groups='drop')
df_targets %>%
mutate(sgID_AB=fct_reorder(sgID_AB, -pct_mt)) %>%
ggplot(aes(x=sgID_AB, y=pct_mt, fill=target_gene == "non-targeting")) +
geom_bar(stat='identity') +
scale_y_continuous(expand=c(0,0,0.05,0)) +
scale_fill_manual(values=c('grey', 'red')) +
theme_bw() +
theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) +
labs(x="Target Gene", y="Percent UMIs Mitochondrial", fill="Control")
g <- df_targets %>%
mutate(is_nt=target_gene == "non-targeting") %>%
ggplot(aes(x="Perturbations", y=pct_mt)) +
geom_violin(fill='lightgrey', size=0.2, draw_quantiles=c(0.25, 0.50, 0.75)) +
geom_quasirandom(aes(color=is_nt, size=is_nt, text=target_gene),
pch=16) +
scale_color_manual(values=c("black", "red")) +
scale_size_manual(values=c(0.1,1), guide='none') +
scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
theme_bw() +
labs(x=NULL, y="Percent UMIs from chrM",
color="Control")
## Warning: Ignoring unknown aesthetics: text
ggplotly(g, tooltip=c("text", "y")) %>%
style(hoverinfo = "skip", traces = 1)
df_targets %>%
select(target_gene, pct_mt, mean_umis_total, sgID_AB) %>%
slice_max(pct_mt, n=20)
## # A tibble: 20 × 4
## target_gene pct_mt mean_umis_total sgID_AB
## <chr> <dbl> <dbl> <chr>
## 1 POLR2K 0.176 6259. POLR2K_-_101162904.23-P1P2|POLR2K_-_10116…
## 2 POLR2G 0.173 7980. POLR2G_-_62529086.23-P1P2|POLR2G_-_625290…
## 3 TAF10 0.172 7808. TAF10_-_6633436.23-P1P2|TAF10_+_6633406.2…
## 4 TAF12 0.171 7796. TAF12_+_28969568.23-P1P2|TAF12_+_28969521…
## 5 TAF5 0.170 7884. TAF5_-_105127776.23-P1P2|TAF5_+_105127794…
## 6 RBBP5 0.170 13453. RBBP5_-_205091086.23-P1P2|RBBP5_-_2050910…
## 7 GPN3 0.169 8130. GPN3_-_110906004.23-P1P2|GPN3_+_110906029…
## 8 TAF1 0.165 7683. TAF1_-_70586444.23-P1P2|TAF1_+_70586687.2…
## 9 MED9 0.165 5430. MED9_-_17380350.23-P1P2|MED9_-_17380394.2…
## 10 SUPT6H 0.165 5454. SUPT6H_+_26989285.23-P1P2|SUPT6H_+_269892…
## 11 RPAP2 0.164 8649. RPAP2_-_92764613.23-P1P2|RPAP2_+_92764606…
## 12 WDR5 0.164 10564. WDR5_+_137001233.23-P1P2|WDR5_+_137001236…
## 13 MED30 0.163 5613. MED30_+_118533216.23-P1P2|MED30_-_1185332…
## 14 POLR2H 0.163 7520. POLR2H_+_184081227.23-P1P2|POLR2H_-_18408…
## 15 RPAP1 0.163 9235. RPAP1_+_41836411.23-P1P2|RPAP1_+_41836408…
## 16 MVD 0.162 13380. MVD_+_88729520.23-P1P2|MVD_-_88729483.23-…
## 17 GPN2 0.161 10375. GPN2_-_27216692.23-P1P2|GPN2_+_27216709.2…
## 18 GPN1 0.161 8828. GPN1_-_27852137.23-P1P2|GPN1_-_27852111.2…
## 19 MRPL43 0.160 12799. MRPL43_+_102747000.23-P1P2|MRPL43_-_10274…
## 20 PABPC1 0.160 7823. PABPC1_+_101734089.23-P1P2|PABPC1_-_10173…
df_targets %>%
select(target_gene, pct_mt, mean_umis_total, sgID_AB) %>%
slice_min(pct_mt, n=20)
## # A tibble: 20 × 4
## target_gene pct_mt mean_umis_total sgID_AB
## <chr> <dbl> <dbl> <chr>
## 1 LRPPRC 0.0259 11039. LRPPRC_+_44223082.23-P1P2|LRPPRC_-_442230…
## 2 MTPAP 0.0262 9928. MTPAP_-_30638029.23-P1P2|MTPAP_-_30638037…
## 3 POLRMT 0.0307 10634. POLRMT_+_633505.23-P1P2|POLRMT_+_633481.2…
## 4 SSBP1 0.0429 10516. SSBP1_+_141438412.23-P1P2|SSBP1_+_1414384…
## 5 PNPT1 0.0454 11283. PNPT1_-_55920888.23-P1P2|PNPT1_-_55920900…
## 6 TEFM 0.0541 11202. TEFM_+_29233191.23-P1P2|TEFM_+_29233099.2…
## 7 HSPA9 0.0623 8020. HSPA9_-_137911079.23-P1P2|HSPA9_-_1379110…
## 8 SUPV3L1 0.0663 10835. SUPV3L1_+_70940042.23-P1P2|SUPV3L1_+_7094…
## 9 TOMM22 0.0673 10385. TOMM22_+_39078005.23-P1P2|TOMM22_-_390781…
## 10 RPL27 0.0675 13218. RPL27_-_41150504.23-P1P2|RPL27_+_41150471…
## 11 RPL17 0.0687 12455. RPL17_-_47018832.23-P1P2|RPL17_-_47018796…
## 12 TFAM 0.0694 10899. TFAM_+_60145205.23-P1P2|TFAM_-_60145223.2…
## 13 RPL23A 0.0707 12806. RPL23A_-_27047048.23-P1P2|RPL23A_+_270473…
## 14 RPL7A 0.0717 14127. RPL7A_-_136215123.23-P1P2|RPL7A_+_1362150…
## 15 AFG3L2 0.0736 12122. AFG3L2_-_12377212.23-P1P2|AFG3L2_-_123772…
## 16 RPL6 0.0743 12548. RPL6_-_112847347.23-P1P2|RPL6_-_112847189…
## 17 MRPS14 0.0745 10630. MRPS14_-_174992444.23-P1P2|MRPS14_+_17499…
## 18 DNAJA3 0.0750 10703. DNAJA3_+_4475898.23-P1P2|DNAJA3_-_4475855…
## 19 AQR 0.0752 11415. AQR_+_35261872.23-P1P2|AQR_-_35261877.23-…
## 20 RPL31 0.0758 12719. RPL31_-_101618787.23-P1P2|RPL31_-_1016187…
df_targets %>%
mutate(sgID_AB=fct_reorder(sgID_AB, -pct_ipa)) %>%
ggplot(aes(x=sgID_AB, y=pct_ipa, fill=target_gene == "non-targeting")) +
geom_bar(stat='identity') +
scale_y_continuous(expand=c(0,0,0.05,0)) +
scale_fill_manual(values=c('grey', 'red')) +
theme_bw() +
theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) +
labs(x="Target Gene", y="Percent UMIs IPA", fill="Control")
g <- df_targets %>%
mutate(is_nt=target_gene == "non-targeting") %>%
ggplot(aes(x="Perturbations", y=pct_ipa)) +
geom_violin(fill='lightgrey', size=0.2, draw_quantiles=c(0.25, 0.50, 0.75)) +
geom_quasirandom(aes(color=is_nt, size=is_nt, text=target_gene),
pch=16) +
scale_color_manual(values=c("black", "red")) +
scale_size_manual(values=c(0.1,1), guide='none') +
scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
theme_bw() +
labs(x=NULL, y="Percent UMIs from IPA isoforms",
color="Control")
## Warning: Ignoring unknown aesthetics: text
ggplotly(g, tooltip=c("text", "y")) %>%
style(hoverinfo = "skip", traces = 1)
df_targets %>%
select(target_gene, pct_ipa, mean_umis_total, sgID_AB) %>%
slice_max(pct_ipa, n=20)
## # A tibble: 20 × 4
## target_gene pct_ipa mean_umis_total sgID_AB
## <chr> <dbl> <dbl> <chr>
## 1 HSPA9 0.176 8020. HSPA9_-_137911079.23-P1P2|HSPA9_-_137911…
## 2 MTPAP 0.173 9928. MTPAP_-_30638029.23-P1P2|MTPAP_-_3063803…
## 3 LRPPRC 0.171 11039. LRPPRC_+_44223082.23-P1P2|LRPPRC_-_44223…
## 4 POLRMT 0.171 10634. POLRMT_+_633505.23-P1P2|POLRMT_+_633481.…
## 5 PHB 0.170 8162. PHB_+_47492183.23-P1P2|PHB_+_47492231.23…
## 6 SSBP1 0.170 10516. SSBP1_+_141438412.23-P1P2|SSBP1_+_141438…
## 7 PHB2 0.169 8389. PHB2_+_7079788.23-P1P2|PHB2_-_7079800.23…
## 8 AFG3L2 0.169 12122. AFG3L2_-_12377212.23-P1P2|AFG3L2_-_12377…
## 9 TIMM23B 0.168 9256. TIMM23B_-_51371488.23-P1P2|TIMM23B_-_513…
## 10 PNPT1 0.168 11283. PNPT1_-_55920888.23-P1P2|PNPT1_-_5592090…
## 11 DNAJC19 0.168 9265. DNAJC19_+_180707414.23-P1P2|DNAJC19_+_18…
## 12 AQR 0.167 11415. AQR_+_35261872.23-P1P2|AQR_-_35261877.23…
## 13 AARS 0.167 9698. AARS_+_70323362.23-P1P2|AARS_-_70323332.…
## 14 DNAJA3 0.166 10703. DNAJA3_+_4475898.23-P1P2|DNAJA3_-_447585…
## 15 TOMM22 0.166 10385. TOMM22_+_39078005.23-P1P2|TOMM22_-_39078…
## 16 PRELID3B 0.166 10301. SLMO2_-_57617833.23-P1P2|SLMO2_-_5761781…
## 17 HGS 0.166 10234. HGS_-_79651112.23-P1P2|HGS_-_79651070.23…
## 18 PAM16 0.165 10537. PAM16_+_4401248.23-P1P2|PAM16_-_4401236.…
## 19 EIF2S1 0.165 8939. EIF2S1_-_67827085.23-P1P2|EIF2S1_-_67827…
## 20 LSM6 0.165 12259. LSM6_-_147096941.23-P1P2|LSM6_-_14709691…
df_targets %>%
select(target_gene, pct_ipa, mean_umis_total, sgID_AB) %>%
slice_min(pct_ipa, n=20)
## # A tibble: 20 × 4
## target_gene pct_ipa mean_umis_total sgID_AB
## <chr> <dbl> <dbl> <chr>
## 1 TAF10 0.139 7808. TAF10_-_6633436.23-P1P2|TAF10_+_6633406.…
## 2 TAF12 0.140 7796. TAF12_+_28969568.23-P1P2|TAF12_+_2896952…
## 3 POLR2K 0.141 6259. POLR2K_-_101162904.23-P1P2|POLR2K_-_1011…
## 4 EP400 0.141 11265. EP400_+_132434542.23-P1P2|EP400_-_132434…
## 5 TAF6 0.142 9595. TAF6_-_99716931.23-P1P2|TAF6_+_99716935.…
## 6 WDR5 0.142 10564. WDR5_+_137001233.23-P1P2|WDR5_+_13700123…
## 7 TAF1 0.143 7683. TAF1_-_70586444.23-P1P2|TAF1_+_70586687.…
## 8 TAF5 0.143 7884. TAF5_-_105127776.23-P1P2|TAF5_+_10512779…
## 9 CSTF3 0.143 10053. CSTF3_+_33183038.23-P1P2|CSTF3_-_3318280…
## 10 TAF2 0.144 8020. TAF2_-_120844853.23-P1P2|TAF2_-_12084504…
## 11 TAF8 0.144 8666. TAF8_-_42018330.23-P1P2|TAF8_+_42018316.…
## 12 CPSF1 0.144 9551. CPSF1_+_145634685.23-P1P2|CPSF1_-_145634…
## 13 NCBP2 0.145 8990. NCBP2_-_196669400.23-P1P2|NCBP2_-_196669…
## 14 RPAP1 0.145 9235. RPAP1_+_41836411.23-P1P2|RPAP1_+_4183640…
## 15 FIP1L1 0.145 8742. FIP1L1_+_54243867.23-P1P2|FIP1L1_-_54244…
## 16 EXOC7 0.145 9882. EXOC7_-_74099399.23-P1P2|EXOC7_+_7409979…
## 17 NELFA 0.145 10381. NELFA_+_2010657.23-P1P2|NELFA_+_2010470.…
## 18 PPRC1 0.145 10227. PPRC1_-_103892809.23-P1P2|PPRC1_-_103892…
## 19 NCBP1 0.145 8216. NCBP1_+_100396123.23-P1P2|NCBP1_+_100396…
## 20 GPN3 0.145 8130. GPN3_-_110906004.23-P1P2|GPN3_+_11090602…
df_targets %>%
mutate(sgID_AB=fct_reorder(sgID_AB, -pct_proximal)) %>%
ggplot(aes(x=sgID_AB, y=pct_proximal, fill=target_gene == "non-targeting")) +
geom_bar(stat='identity') +
scale_y_continuous(expand=c(0,0,0.05,0)) +
scale_fill_manual(values=c('grey', 'red')) +
theme_bw() +
theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) +
labs(x="Target Gene", y="Percent UMIs Proximal Transcript", fill="Control")
g <- df_targets %>%
mutate(is_nt=target_gene == "non-targeting") %>%
ggplot(aes(x="Perturbations", y=pct_proximal)) +
geom_violin(fill='lightgrey', size=0.2, draw_quantiles=c(0.25, 0.50, 0.75)) +
geom_quasirandom(aes(color=is_nt, size=is_nt, text=target_gene),
pch=16) +
scale_color_manual(values=c("black", "red")) +
scale_size_manual(values=c(0.1,1), guide='none') +
scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
theme_bw() +
labs(x=NULL, y="Percent UMIs from proximal isoforms",
color="Control")
## Warning: Ignoring unknown aesthetics: text
ggplotly(g, tooltip=c("text", "y")) %>%
style(hoverinfo = "skip", traces = 1)
df_targets %>%
select(target_gene, pct_proximal, mean_umis_total, sgID_AB) %>%
slice_max(pct_proximal, n=20)
## # A tibble: 20 × 4
## target_gene pct_proximal mean_umis_total sgID_AB
## <chr> <dbl> <dbl> <chr>
## 1 POLR2K 0.292 6259. POLR2K_-_101162904.23-P1P2|POLR2K_-…
## 2 EP400 0.289 11265. EP400_+_132434542.23-P1P2|EP400_-_1…
## 3 TAF12 0.287 7796. TAF12_+_28969568.23-P1P2|TAF12_+_28…
## 4 TAF10 0.286 7808. TAF10_-_6633436.23-P1P2|TAF10_+_663…
## 5 TAF5 0.285 7884. TAF5_-_105127776.23-P1P2|TAF5_+_105…
## 6 POLR2G 0.285 7980. POLR2G_-_62529086.23-P1P2|POLR2G_-_…
## 7 GPN3 0.282 8130. GPN3_-_110906004.23-P1P2|GPN3_+_110…
## 8 WDR5 0.281 10564. WDR5_+_137001233.23-P1P2|WDR5_+_137…
## 9 MED9 0.280 5430. MED9_-_17380350.23-P1P2|MED9_-_1738…
## 10 TAF1 0.280 7683. TAF1_-_70586444.23-P1P2|TAF1_+_7058…
## 11 RBBP5 0.279 13453. RBBP5_-_205091086.23-P1P2|RBBP5_-_2…
## 12 SUPT6H 0.279 5454. SUPT6H_+_26989285.23-P1P2|SUPT6H_+_…
## 13 MED30 0.279 5613. MED30_+_118533216.23-P1P2|MED30_-_1…
## 14 PABPC1 0.278 7823. PABPC1_+_101734089.23-P1P2|PABPC1_-…
## 15 RPAP2 0.278 8649. RPAP2_-_92764613.23-P1P2|RPAP2_+_92…
## 16 MED18 0.277 8405. MED18_-_28655598.23-P1P2|MED18_-_28…
## 17 POLR2H 0.277 7520. POLR2H_+_184081227.23-P1P2|POLR2H_-…
## 18 RPAP1 0.277 9235. RPAP1_+_41836411.23-P1P2|RPAP1_+_41…
## 19 TRRAP 0.277 11006. TRRAP_-_98476562.23-P1P2|TRRAP_-_98…
## 20 GPN2 0.276 10375. GPN2_-_27216692.23-P1P2|GPN2_+_2721…
df_targets %>%
select(target_gene, pct_proximal, mean_umis_total, sgID_AB) %>%
slice_min(pct_proximal, n=20)
## # A tibble: 20 × 4
## target_gene pct_proximal mean_umis_total sgID_AB
## <chr> <dbl> <dbl> <chr>
## 1 MTPAP 0.155 9928. MTPAP_-_30638029.23-P1P2|MTPAP_-_30…
## 2 LRPPRC 0.156 11039. LRPPRC_+_44223082.23-P1P2|LRPPRC_-_…
## 3 POLRMT 0.158 10634. POLRMT_+_633505.23-P1P2|POLRMT_+_63…
## 4 SSBP1 0.170 10516. SSBP1_+_141438412.23-P1P2|SSBP1_+_1…
## 5 PNPT1 0.173 11283. PNPT1_-_55920888.23-P1P2|PNPT1_-_55…
## 6 HSPA9 0.179 8020. HSPA9_-_137911079.23-P1P2|HSPA9_-_1…
## 7 TEFM 0.185 11202. TEFM_+_29233191.23-P1P2|TEFM_+_2923…
## 8 TOMM22 0.191 10385. TOMM22_+_39078005.23-P1P2|TOMM22_-_…
## 9 AQR 0.193 11415. AQR_+_35261872.23-P1P2|AQR_-_352618…
## 10 TFAM 0.194 10899. TFAM_+_60145205.23-P1P2|TFAM_-_6014…
## 11 SUPV3L1 0.194 10835. SUPV3L1_+_70940042.23-P1P2|SUPV3L1_…
## 12 DNAJA3 0.196 10703. DNAJA3_+_4475898.23-P1P2|DNAJA3_-_4…
## 13 AFG3L2 0.196 12122. AFG3L2_-_12377212.23-P1P2|AFG3L2_-_…
## 14 PHB 0.197 8162. PHB_+_47492183.23-P1P2|PHB_+_474922…
## 15 RPL27 0.197 13218. RPL27_-_41150504.23-P1P2|RPL27_+_41…
## 16 MRPS14 0.199 10630. MRPS14_-_174992444.23-P1P2|MRPS14_+…
## 17 RPL17 0.199 12455. RPL17_-_47018832.23-P1P2|RPL17_-_47…
## 18 RPL23A 0.200 12806. RPL23A_-_27047048.23-P1P2|RPL23A_+_…
## 19 RPL7A 0.202 14127. RPL7A_-_136215123.23-P1P2|RPL7A_+_1…
## 20 REXO2 0.203 10952. REXO2_-_114310257.23-P1P2|REXO2_+_1…
df_targets %>%
mutate(sgID_AB=fct_reorder(sgID_AB, -pct_distal)) %>%
ggplot(aes(x=sgID_AB, y=pct_distal, fill=target_gene == "non-targeting")) +
geom_bar(stat='identity') +
scale_y_continuous(expand=c(0,0,0.05,0)) +
scale_fill_manual(values=c('grey', 'red')) +
theme_bw() +
theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) +
labs(x="Target Gene", y="Percent UMIs Distal Transcripts", fill="Control")
g <- df_targets %>%
mutate(is_nt=target_gene == "non-targeting") %>%
ggplot(aes(x="Perturbations", y=pct_distal)) +
geom_violin(fill='lightgrey', size=0.2, draw_quantiles=c(0.25, 0.50, 0.75)) +
geom_quasirandom(aes(color=is_nt, size=is_nt, text=target_gene),
pch=16) +
scale_color_manual(values=c("black", "red")) +
scale_size_manual(values=c(0.1,1), guide='none') +
scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
theme_bw() +
labs(x=NULL, y="Percent UMIs from distal isoforms",
color="Control")
## Warning: Ignoring unknown aesthetics: text
ggplotly(g, tooltip=c("text", "y")) %>%
style(hoverinfo = "skip", traces = 1)
df_targets %>%
select(target_gene, pct_distal, mean_umis_total, sgID_AB) %>%
slice_max(pct_distal, n=20)
## # A tibble: 20 × 4
## target_gene pct_distal mean_umis_total sgID_AB
## <chr> <dbl> <dbl> <chr>
## 1 TAF10 0.558 7808. TAF10_-_6633436.23-P1P2|TAF10_+_66334…
## 2 TAF12 0.554 7796. TAF12_+_28969568.23-P1P2|TAF12_+_2896…
## 3 EP400 0.551 11265. EP400_+_132434542.23-P1P2|EP400_-_132…
## 4 TAF5 0.551 7884. TAF5_-_105127776.23-P1P2|TAF5_+_10512…
## 5 TAF1 0.550 7683. TAF1_-_70586444.23-P1P2|TAF1_+_705866…
## 6 POLR2K 0.550 6259. POLR2K_-_101162904.23-P1P2|POLR2K_-_1…
## 7 TAF2 0.548 8020. TAF2_-_120844853.23-P1P2|TAF2_-_12084…
## 8 POLR2G 0.547 7980. POLR2G_-_62529086.23-P1P2|POLR2G_-_62…
## 9 TAF8 0.546 8666. TAF8_-_42018330.23-P1P2|TAF8_+_420183…
## 10 FIP1L1 0.546 8742. FIP1L1_+_54243867.23-P1P2|FIP1L1_-_54…
## 11 GPN3 0.544 8130. GPN3_-_110906004.23-P1P2|GPN3_+_11090…
## 12 RBBP5 0.544 13453. RBBP5_-_205091086.23-P1P2|RBBP5_-_205…
## 13 TAF7 0.543 8899. TAF7_+_140700244.23-P1P2|TAF7_+_14070…
## 14 SRRT 0.543 8303. SRRT_+_100472814.23-P1P2|SRRT_+_10047…
## 15 MVD 0.543 13380. MVD_+_88729520.23-P1P2|MVD_-_88729483…
## 16 RPAP2 0.542 8649. RPAP2_-_92764613.23-P1P2|RPAP2_+_9276…
## 17 SUPT5H 0.541 5532. SUPT5H_-_39936298.23-P1P2|SUPT5H_-_39…
## 18 CASP8AP2 0.541 13603. CASP8AP2_-_90539614.23-P1P2|CASP8AP2_…
## 19 RPAP1 0.541 9235. RPAP1_+_41836411.23-P1P2|RPAP1_+_4183…
## 20 POLR2H 0.541 7520. POLR2H_+_184081227.23-P1P2|POLR2H_-_1…
df_targets %>%
select(target_gene, pct_distal, mean_umis_total, sgID_AB) %>%
slice_min(pct_distal, n=20)
## # A tibble: 20 × 4
## target_gene pct_distal mean_umis_total sgID_AB
## <chr> <dbl> <dbl> <chr>
## 1 MTPAP 0.459 9928. MTPAP_-_30638029.23-P1P2|MTPAP_-_3063…
## 2 POLRMT 0.464 10634. POLRMT_+_633505.23-P1P2|POLRMT_+_6334…
## 3 LRPPRC 0.465 11039. LRPPRC_+_44223082.23-P1P2|LRPPRC_-_44…
## 4 SSBP1 0.470 10516. SSBP1_+_141438412.23-P1P2|SSBP1_+_141…
## 5 HSPA9 0.472 8020. HSPA9_-_137911079.23-P1P2|HSPA9_-_137…
## 6 PNPT1 0.479 11283. PNPT1_-_55920888.23-P1P2|PNPT1_-_5592…
## 7 PHB 0.482 8162. PHB_+_47492183.23-P1P2|PHB_+_47492231…
## 8 TEFM 0.482 11202. TEFM_+_29233191.23-P1P2|TEFM_+_292330…
## 9 AQR 0.482 11415. AQR_+_35261872.23-P1P2|AQR_-_35261877…
## 10 RPL27 0.483 13218. RPL27_-_41150504.23-P1P2|RPL27_+_4115…
## 11 TOMM22 0.484 10385. TOMM22_+_39078005.23-P1P2|TOMM22_-_39…
## 12 TFAM 0.484 10899. TFAM_+_60145205.23-P1P2|TFAM_-_601452…
## 13 RPL17 0.484 12455. RPL17_-_47018832.23-P1P2|RPL17_-_4701…
## 14 AFG3L2 0.484 12122. AFG3L2_-_12377212.23-P1P2|AFG3L2_-_12…
## 15 RPL6 0.485 12548. RPL6_-_112847347.23-P1P2|RPL6_-_11284…
## 16 RPL23A 0.485 12806. RPL23A_-_27047048.23-P1P2|RPL23A_+_27…
## 17 PHB2 0.486 8389. PHB2_+_7079788.23-P1P2|PHB2_-_7079800…
## 18 RPL7A 0.487 14127. RPL7A_-_136215123.23-P1P2|RPL7A_+_136…
## 19 RPL19 0.487 12977. RPL19_-_37356608.23-P1P2|RPL19_+_3735…
## 20 FAM50A 0.488 10382. FAM50A_-_153672598.23-P1P2|FAM50A_-_1…
g <- df_targets %>%
mutate(is_nt=target_gene == "non-targeting") %>%
ggplot(aes(x=pct_proximal, y=pct_distal, color=is_nt, text=target_gene)) +
geom_point(aes(size=is_nt),
pch=16) +
geom_rug(size=0.1) +
scale_color_manual(values=c("black", "red")) +
scale_size_manual(values=c(0.2,0.8)) +
scale_x_continuous(labels=scales::percent_format(accuracy=1)) +
scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
theme_bw() +
theme(legend.position="none") +
labs(x="Percent UMIs from proximal isoforms",
y="Percent UMIs from distal isoforms")
ggplotly(g, tooltip=c("text", "x", "y"))
Naively, we would expect these to compensatory statistics, however, in this first pass we include also single-UTR isoforms, which are labeled as both “proximal” and “distal”. This possibly explains the strong positive correlation.
We observe here three major outliers that
The first two are major cleavage enhancement factors that co-complex and bind RNA around UGUA motifs found 40-80 nts upstream of the mRNA cleavage site. OGFOD1 has no known regulatory effect on 3’ UTR isoform usage in mammals, though it is a homolog of Tpa1 (Sac. cer.), which stands for “Termination and Polyadenylation 1”.
This could represent novel function.
g <- df_targets %>%
mutate(is_nt=target_gene == "non-targeting") %>%
ggplot(aes(x=pct_ipa, y=pct_proximal, color=is_nt, text=target_gene)) +
geom_point(aes(size=is_nt),
pch=16) +
geom_rug(size=0.1) +
scale_color_manual(values=c("black", "red")) +
scale_size_manual(values=c(0.2,0.8)) +
scale_x_continuous(labels=scales::percent_format(accuracy=1)) +
scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
theme_bw() +
theme(legend.position="none") +
labs(x="Percent UMIs from IPA isoforms",
y="Percent UMIs from proximal isoforms")
ggplotly(g, tooltip=c("text", "x", "y"))
g <- df_targets %>%
mutate(is_nt=target_gene == "non-targeting") %>%
ggplot(aes(x=pct_ipa, y=pct_distal, color=is_nt, text=target_gene)) +
geom_point(aes(size=is_nt),
pch=16) +
geom_rug(size=0.1) +
scale_color_manual(values=c("black", "red")) +
scale_size_manual(values=c(0.2,0.8)) +
scale_x_continuous(labels=scales::percent_format(accuracy=1)) +
scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
theme_bw() +
theme(legend.position="none") +
labs(x="Percent UMIs from IPA isoforms",
y="Percent UMIs from distal isoforms")
ggplotly(g, tooltip=c("text", "x", "y"))
g <- df_targets %>%
mutate(is_nt=target_gene == "non-targeting") %>%
ggplot(aes(x=pct_ipa, y=pct_mt, color=is_nt, text=target_gene)) +
geom_point(aes(size=is_nt),
pch=16) +
geom_rug(size=0.1) +
scale_color_manual(values=c("black", "red")) +
scale_size_manual(values=c(0.2,0.8)) +
scale_x_continuous(labels=scales::percent_format(accuracy=1)) +
scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
theme_bw() +
theme(legend.position="none") +
labs(x="Percent UMIs from IPA isoforms",
y="Percent UMIs from chrM")
ggplotly(g, tooltip=c("text", "x", "y"))
g <- df_targets %>%
mutate(is_nt=target_gene == "non-targeting") %>%
ggplot(aes(x=pct_proximal, y=pct_mt, color=is_nt, text=target_gene)) +
geom_point(aes(size=is_nt),
pch=16) +
geom_rug(size=0.1) +
scale_color_manual(values=c("black", "red")) +
scale_size_manual(values=c(0.2,0.8)) +
scale_x_continuous(labels=scales::percent_format(accuracy=1)) +
scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
theme_bw() +
theme(legend.position="none") +
labs(x="Percent UMIs from Proximal isoforms",
y="Percent UMIs from chrM")
ggplotly(g, tooltip=c("text", "x", "y"))
g <- df_targets %>%
mutate(is_nt=target_gene == "non-targeting") %>%
ggplot(aes(x=pct_distal, y=pct_mt, color=is_nt, text=target_gene)) +
geom_point(aes(size=is_nt),
pch=16) +
geom_rug(size=0.1) +
scale_color_manual(values=c("black", "red")) +
scale_size_manual(values=c(0.2,0.8)) +
scale_x_continuous(labels=scales::percent_format(accuracy=1)) +
scale_y_continuous(labels=scales::percent_format(accuracy=1)) +
theme_bw() +
theme(legend.position="none") +
labs(x="Percent UMIs from Distal isoforms",
y="Percent UMIs from chrM")
ggplotly(g, tooltip=c("text", "x", "y"))
The data set appears consistent with being well-processed and coherent. The most interesting observation is the significant perturbation of distal -> proximal isoforms in the knockdowns of the NUDT21, CPSF6, and OGDOF1. It should be noted that OGDOF1 and NUDT21 form a divergent gene pair, raising the possibility that CRISPRi targeting OGDOF1 also impacts NUDT21 expression levels, and thus does not have any significant effect on isoform usage itself. Examining heatmaps from both the KD6 and KD8 experiments shows that in the OGDOF1 perturbations, NUDT21 expression was also reduced to a similar z-score (though slightly higher than a direct NUDT21 perturbation).
Additionally, both the NUDT21 and OGDOF1 perturbations resulted in similar upregulation of CPSF6 levels, however, CPSF6 perturbation showed only upregulation of NUDT21, with no change in OGDOF1 expression.
## R version 4.1.1 (2021-08-10)
## Platform: x86_64-apple-darwin13.4.0 (64-bit)
## Running under: macOS Big Sur 10.16
##
## Matrix products: default
## BLAS/LAPACK: /Users/mfansler/miniconda3/envs/bioc_3_14/lib/libopenblasp-r0.3.18.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] stats4 stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] SingleCellExperiment_1.16.0 SummarizedExperiment_1.24.0
## [3] Biobase_2.54.0 GenomicRanges_1.46.0
## [5] GenomeInfoDb_1.30.0 IRanges_2.28.0
## [7] S4Vectors_0.32.0 BiocGenerics_0.40.0
## [9] MatrixGenerics_1.6.0 matrixStats_0.61.0
## [11] Matrix_1.3-4 ggbeeswarm_0.6.0
## [13] plotly_4.10.0 cowplot_1.1.1
## [15] forcats_0.5.1 stringr_1.4.0
## [17] dplyr_1.0.8 purrr_0.3.4
## [19] readr_2.1.1 tidyr_1.1.4
## [21] tibble_3.1.7 ggplot2_3.3.5
## [23] tidyverse_1.3.1 magrittr_2.0.3
##
## loaded via a namespace (and not attached):
## [1] bitops_1.0-7 fs_1.5.2 lubridate_1.8.0
## [4] httr_1.4.2 tools_4.1.1 backports_1.4.0
## [7] bslib_0.3.1 utf8_1.2.2 R6_2.5.1
## [10] vipor_0.4.5 DBI_1.1.1 lazyeval_0.2.2
## [13] colorspace_2.0-2 withr_2.4.3 tidyselect_1.1.1
## [16] compiler_4.1.1 cli_3.3.0 rvest_1.0.2
## [19] xml2_1.3.3 isoband_0.2.5 DelayedArray_0.20.0
## [22] labeling_0.4.2 sass_0.4.0 scales_1.1.1
## [25] digest_0.6.29 rmarkdown_2.11 XVector_0.34.0
## [28] pkgconfig_2.0.3 htmltools_0.5.2 highr_0.9
## [31] dbplyr_2.1.1 fastmap_1.1.0 htmlwidgets_1.5.4
## [34] rlang_1.0.2 readxl_1.3.1 rstudioapi_0.13
## [37] farver_2.1.0 jquerylib_0.1.4 generics_0.1.1
## [40] jsonlite_1.7.2 crosstalk_1.2.0 RCurl_1.98-1.5
## [43] GenomeInfoDbData_1.2.7 Rcpp_1.0.7 munsell_0.5.0
## [46] fansi_0.5.0 lifecycle_1.0.1 stringi_1.7.6
## [49] yaml_2.2.1 MASS_7.3-54 zlibbioc_1.40.0
## [52] grid_4.1.1 crayon_1.4.2 lattice_0.20-45
## [55] haven_2.4.3 hms_1.1.1 knitr_1.39
## [58] pillar_1.7.0 reprex_2.0.1 glue_1.6.2
## [61] evaluate_0.15 data.table_1.14.2 modelr_0.1.8
## [64] vctrs_0.4.1 tzdb_0.2.0 cellranger_1.1.0
## [67] gtable_0.3.0 assertthat_0.2.1 xfun_0.30
## [70] broom_0.8.0 viridisLite_0.4.0 beeswarm_0.4.0
## [73] ellipsis_0.3.2
## Conda Environment YAML
name: bioc_3_14
channels:
- merv
- conda-forge
- bioconda
- defaults
dependencies:
- _r-mutex=1.0.1=anacondar_1
- bioconductor-affy=1.72.0=r41haba8685_1
- bioconductor-affyio=1.64.0=r41haba8685_1
- bioconductor-annotate=1.72.0=r41hdfd78af_0
- bioconductor-annotationdbi=1.56.1=r41hdfd78af_0
- bioconductor-annotationfilter=1.18.0=r41hdfd78af_0
- bioconductor-annotationhub=3.2.0=r41hdfd78af_0
- bioconductor-beachmat=2.10.0=r41h832b226_0
- bioconductor-biobase=2.54.0=r41h68a2ddb_0
- bioconductor-biocfilecache=2.2.0=r41hdfd78af_0
- bioconductor-biocgenerics=0.40.0=r41hdfd78af_0
- bioconductor-biocio=1.4.0=r41hdfd78af_0
- bioconductor-biocneighbors=1.12.0=r41h832b226_0
- bioconductor-biocparallel=1.28.0=r41h832b226_0
- bioconductor-biocsingular=1.10.0=r41h832b226_0
- bioconductor-biocversion=3.14.0=r41hdfd78af_0
- bioconductor-biomart=2.50.0=r41hdfd78af_0
- bioconductor-biostrings=2.62.0=r41h68a2ddb_0
- bioconductor-bluster=1.4.0=r41h832b226_0
- bioconductor-bsgenome=1.62.0=r41hdfd78af_0
- bioconductor-bsgenome.hsapiens.ucsc.hg19=1.4.3=r41hdfd78af_4
- bioconductor-bsgenome.hsapiens.ucsc.hg38=1.4.4=r41hdfd78af_0
- bioconductor-bsgenome.mmusculus.ucsc.mm10=1.4.3=r41hdfd78af_0
- bioconductor-delayedarray=0.20.0=r41h68a2ddb_0
- bioconductor-delayedmatrixstats=1.16.0=r41hdfd78af_0
- bioconductor-deseq2=1.34.0=r41h832b226_0
- bioconductor-drimseq=1.22.0=r41hdfd78af_0
- bioconductor-dropletutils=1.14.2=r41h7cba510_0
- bioconductor-edger=3.36.0=r41h832b226_0
- bioconductor-ensembldb=2.18.1=r41hdfd78af_0
- bioconductor-experimenthub=2.2.0=r41hdfd78af_0
- bioconductor-genefilter=1.76.0=r41hcf7da7f_0
- bioconductor-geneplotter=1.72.0=r41hdfd78af_0
- bioconductor-genomeinfodb=1.30.0=r41hdfd78af_0
- bioconductor-genomeinfodbdata=1.2.7=r41hdfd78af_1
- bioconductor-genomicalignments=1.30.0=r41h68a2ddb_0
- bioconductor-genomicfeatures=1.46.1=r41hdfd78af_0
- bioconductor-genomicranges=1.46.0=r41h68a2ddb_0
- bioconductor-hdf5array=1.22.1=r41haba8685_0
- bioconductor-hitc=1.38.0=r41hdfd78af_0
- bioconductor-interactivedisplaybase=1.32.0=r41hdfd78af_0
- bioconductor-iranges=2.28.0=r41h68a2ddb_0
- bioconductor-keggrest=1.34.0=r41hdfd78af_0
- bioconductor-limma=3.50.0=r41h68a2ddb_0
- bioconductor-matrixgenerics=1.6.0=r41hdfd78af_0
- bioconductor-metapod=1.2.0=r41h832b226_0
- bioconductor-org.hs.eg.db=3.14.0=r41hdfd78af_0
- bioconductor-org.mm.eg.db=3.14.0=r41hdfd78af_0
- bioconductor-plyranges=1.14.0=r41hdfd78af_0
- bioconductor-preprocesscore=1.56.0=r41haba8685_1
- bioconductor-protgenerics=1.26.0=r41hdfd78af_0
- bioconductor-rhdf5=2.38.0=r41h0364653_2
- bioconductor-rhdf5filters=1.6.0=r41h7cba510_1
- bioconductor-rhdf5lib=1.16.0=r41haba8685_1
- bioconductor-rhtslib=1.26.0=r41h68a2ddb_0
- bioconductor-rsamtools=2.10.0=r41h832b226_0
- bioconductor-rtracklayer=1.54.0=r41hf05625f_2
- bioconductor-s4vectors=0.32.0=r41h68a2ddb_0
- bioconductor-scaledmatrix=1.2.0=r41hdfd78af_0
- bioconductor-scater=1.22.0=r41hdfd78af_0
- bioconductor-scran=1.22.0=r41h832b226_0
- bioconductor-scrnaseq=2.8.0=r41hdfd78af_0
- bioconductor-scuttle=1.4.0=r41h832b226_0
- bioconductor-singlecellexperiment=1.16.0=r41hdfd78af_0
- bioconductor-sparsematrixstats=1.6.0=r41h832b226_0
- bioconductor-summarizedexperiment=1.24.0=r41hdfd78af_0
- bioconductor-tidysinglecellexperiment=1.4.0=r41hdfd78af_0
- bioconductor-tricycle=1.2.0=r41hdfd78af_0
- bioconductor-vsn=3.62.0=r41haba8685_1
- bioconductor-xvector=0.34.0=r41h68a2ddb_0
- bioconductor-zlibbioc=1.40.0=r41h68a2ddb_0
- blas=2.112=openblas
- blas-devel=3.9.0=12_osx64_openblas
- bwidget=1.9.14=h694c41f_1
- bzip2=1.0.8=h0d85af4_4
- c-ares=1.18.1=h0d85af4_0
- ca-certificates=2022.6.15=h033912b_0
- cairo=1.16.0=he01c77b_1009
- cctools_osx-64=973.0.1=h3e07e27_2
- clang=12.0.1=h694c41f_4
- clang-12=12.0.1=default_he082bbe_4
- clang_osx-64=12.0.1=h633439f_5
- clangxx=12.0.1=default_he082bbe_4
- clangxx_osx-64=12.0.1=hdb584c0_5
- compiler-rt=12.0.1=he01351e_0
- compiler-rt_osx-64=12.0.1=hd3f61c9_0
- curl=7.82.0=h9f20792_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=hab24e00_0
- fontconfig=2.13.1=h10f422b_1005
- fonts-conda-ecosystem=1=0
- fonts-conda-forge=1=0
- freetype=2.10.4=h4cff582_1
- fribidi=1.0.10=hbcb3906_0
- gettext=0.19.8.1=hd1a6beb_1008
- gfortran_impl_osx-64=9.3.0=h9cc0e5e_23
- gfortran_osx-64=9.3.0=h18f7dce_15
- gmp=6.2.1=h2e338ed_0
- graphite2=1.3.13=h2e338ed_1001
- gsl=2.7=h93259b0_0
- harfbuzz=3.2.0=h447b35c_0
- icu=69.1=he49afe7_0
- isl=0.22.1=hb1e8313_2
- jbig=2.1=h0d85af4_2003
- jpeg=9d=hbcb3906_0
- krb5=1.19.3=hb49756b_0
- ld64_osx-64=609=h2487922_2
- ldid=2.1.2=h6a69015_3
- lerc=3.0=he49afe7_0
- libblas=3.9.0=12_osx64_openblas
- libcblas=3.9.0=12_osx64_openblas
- libclang-cpp12=12.0.1=default_he082bbe_4
- libcurl=7.82.0=h9f20792_0
- libcxx=13.0.1=hc203e6f_0
- libdeflate=1.8=h0d85af4_0
- libedit=3.1.20191231=h0678c8f_2
- libev=4.33=haf1e3a3_1
- libffi=3.4.2=h0d85af4_5
- libgfortran=5.0.0=9_3_0_h6c81a4c_23
- libgfortran-devel_osx-64=9.3.0=h6c81a4c_23
- libgfortran5=9.3.0=h6c81a4c_23
- libgit2=1.4.3=h514b3f4_0
- libglib=2.70.2=hf1fb8c0_0
- libiconv=1.16=haf1e3a3_0
- liblapack=3.9.0=12_osx64_openblas
- liblapacke=3.9.0=12_osx64_openblas
- libllvm12=12.0.1=hd011deb_2
- libnghttp2=1.47.0=h942079c_0
- libopenblas=0.3.18=openmp_h3351f45_0
- libpng=1.6.37=h7cec526_2
- libssh2=1.10.0=h52ee1ee_2
- libtiff=4.3.0=hd146c10_2
- libwebp-base=1.2.1=h0d85af4_0
- libxcb=1.13=h0d85af4_1004
- libxml2=2.9.12=h7e28ab6_1
- libzlib=1.2.11=h9173be1_1013
- llvm-openmp=12.0.1=hda6cdc1_1
- llvm-tools=12.0.1=hd011deb_2
- lz4-c=1.9.3=he49afe7_1
- make=4.3=h22f3db7_1
- mpc=1.2.1=hbb51d92_0
- mpfr=4.1.0=h0f52abe_1
- ncurses=6.2=h2e338ed_4
- openblas=0.3.18=openmp_h12da7db_0
- openssl=1.1.1q=hfe4f2af_0
- pandoc=2.16.2=h0d85af4_0
- pango=1.48.10=h056538c_2
- pcre=8.45=he49afe7_0
- pcre2=10.37=ha16e1b2_0
- pixman=0.40.0=hbcb3906_0
- pthread-stubs=0.4=hc929b4f_1001
- r-anndata=0.7.5.2=r41hdfd78af_0
- r-askpass=1.1=r41h28b5c78_2
- r-assertthat=0.2.1=r41hc72bb7e_2
- r-backports=1.4.0=r41h28b5c78_0
- r-base=4.1.1=h2b051ba_2
- r-base64enc=0.1_3=r41h28b5c78_1004
- r-bayesfactor=0.9.12_4.4=r41h8619c4b_0
- r-bayesm=3.1_4=r41he5a6823_2
- r-bayestestr=0.12.1=r41hc72bb7e_0
- r-beeswarm=0.4.0=r41h28b5c78_1
- r-bh=1.75.0_0=r41hc72bb7e_0
- r-biocmanager=1.30.16=r41hc72bb7e_0
- r-bit=4.0.4=r41h28b5c78_0
- r-bit64=4.0.5=r41h28b5c78_0
- r-bitops=1.0_7=r41h28b5c78_0
- r-blob=1.2.2=r41hc72bb7e_0
- r-boot=1.3_28=r41hc72bb7e_0
- r-brio=1.1.3=r41h28b5c78_0
- r-broom=0.8.0=r41hc72bb7e_0
- r-broom.helpers=1.7.0=r41hc72bb7e_0
- r-bslib=0.3.1=r41hc72bb7e_0
- r-bwstest=0.2.2=r41h9951f98_1003
- r-cachem=1.0.6=r41h28b5c78_0
- r-cairo=1.5_14=r41h28b5c78_0
- r-callr=3.7.0=r41hc72bb7e_0
- r-cardata=3.0_5=r41hc72bb7e_0
- r-caret=6.0_92=r41h0f1d5c4_0
- r-cellranger=1.1.0=r41hc72bb7e_1003
- r-checkmate=2.0.0=r41h28b5c78_1
- r-circular=0.4_93=r41h0661a58_1005
- r-class=7.3_20=r41h28b5c78_0
- r-cli=3.3.0=r41h8619c4b_0
- r-clipr=0.7.1=r41hc72bb7e_0
- r-cluster=2.1.2=r41h749f5a1_0
- r-coda=0.19_4=r41hc72bb7e_0
- r-codetools=0.2_18=r41hc72bb7e_0
- r-colorspace=2.0_2=r41h28b5c78_0
- r-colourpicker=1.1.1=r41hc72bb7e_0
- r-commonmark=1.7=r41h28b5c78_1002
- r-compositions=2.0_4=r41h28b5c78_0
- r-contfrac=1.1_12=r41h28b5c78_1002
- r-correlation=0.8.2=r41hc72bb7e_0
- r-cowplot=1.1.1=r41hc72bb7e_0
- r-cpp11=0.4.2=r41hc72bb7e_0
- r-crayon=1.4.2=r41hc72bb7e_0
- r-credentials=1.3.2=r41hc72bb7e_0
- r-crosstalk=1.2.0=r41hc72bb7e_0
- r-curl=4.3.2=r41h28b5c78_0
- r-data.table=1.14.2=r41ha76789d_0
- r-datawizard=0.5.0=r41hc72bb7e_0
- r-dbi=1.1.1=r41hc72bb7e_0
- r-dbplyr=2.1.1=r41hc72bb7e_0
- r-deoptimr=1.0_11=r41hc72bb7e_0
- r-desc=1.4.0=r41hc72bb7e_0
- r-desolve=1.33=r41hf83fd76_0
- r-dichromat=2.0_0.1=r41ha770c72_0
- r-diffobj=0.3.5=r41h28b5c78_0
- r-digest=0.6.29=r41h9951f98_0
- r-dplyr=1.0.8=r41hc4bb905_0
- r-dqrng=0.3.0=r41h9951f98_0
- r-dt=0.20=r41hc72bb7e_0
- r-dtplyr=1.2.0=r41hc72bb7e_0
- r-e1071=1.7_11=r41h8619c4b_0
- r-effectsize=0.7.0.5=r41hc72bb7e_0
- r-ellipsis=0.3.2=r41h28b5c78_0
- r-elliptic=1.4_0=r41hc72bb7e_2
- r-evaluate=0.15=r41hc72bb7e_0
- r-fansi=0.5.0=r41h28b5c78_0
- r-farver=2.1.0=r41h9951f98_0
- r-fastmap=1.1.0=r41h9951f98_0
- r-filelock=1.0.2=r41h28b5c78_1002
- r-fontawesome=0.2.2=r41hc72bb7e_0
- r-forcats=0.5.1=r41hc72bb7e_0
- r-foreach=1.5.2=r41hc72bb7e_0
- r-formatr=1.11=r41hc72bb7e_0
- r-fs=1.5.2=r41hc4bb905_1
- r-furrr=0.2.3=r41hc72bb7e_0
- r-futile.logger=1.4.3=r41hc72bb7e_1003
- r-futile.options=1.0.1=r41hc72bb7e_1002
- r-future=1.25.0=r41hc72bb7e_0
- r-future.apply=1.9.0=r41hc72bb7e_0
- r-gameofthrones=1.0.2=r41hc72bb7e_1
- r-gargle=1.2.0=r41hc72bb7e_0
- r-generics=0.1.1=r41hc72bb7e_0
- r-gert=1.5.0=r41ha1c6f2d_1
- r-ggbeeswarm=0.6.0=r41ha770c72_1003
- r-ggcorrplot=0.1.3=r41hc72bb7e_2
- r-ggextra=0.10.0=r41hc72bb7e_0
- r-ggplot2=3.3.5=r41hc72bb7e_0
- r-ggrastr=1.0.1=r41hc72bb7e_0
- r-ggrepel=0.9.1=r41h9951f98_0
- r-ggridges=0.5.3=r41hc72bb7e_0
- r-ggsignif=0.6.3=r41hc72bb7e_0
- r-ggstatsplot=0.9.4=r41hc72bb7e_0
- r-ggtern=3.3.5=r41hc72bb7e_0
- r-ggthemes=4.2.4=r41hc72bb7e_0
- r-gh=1.3.0=r41hc72bb7e_0
- r-gitcreds=0.1.1=r41hc72bb7e_0
- r-globals=0.14.0=r41hc72bb7e_0
- r-glue=1.6.2=r41h0f1d5c4_0
- r-gmp=0.6_6=r41h64890a7_0
- r-googledrive=2.0.0=r41hc72bb7e_0
- r-googlesheets4=1.0.0=r41h785f33e_0
- r-gower=1.0.0=r41h28b5c78_0
- r-gridextra=2.3=r41hc72bb7e_1003
- r-gt=0.5.0=r41hc72bb7e_0
- r-gtable=0.3.0=r41hc72bb7e_3
- r-gtools=3.9.3=r41h67d6963_0
- r-gtsummary=1.6.0=r41hc72bb7e_0
- r-hardhat=1.0.0=r41hc72bb7e_0
- r-harrypotter=2.1.1=r41hc72bb7e_1
- r-haven=2.4.3=r41h8a02945_0
- r-here=1.0.1=r41hc72bb7e_0
- r-hexbin=1.28.2=r41h749f5a1_0
- r-highr=0.9=r41hc72bb7e_0
- r-hms=1.1.1=r41hc72bb7e_0
- r-htmltools=0.5.2=r41h9951f98_0
- r-htmlwidgets=1.5.4=r41hc72bb7e_0
- r-httpuv=1.6.5=r41h9951f98_0
- r-httr=1.4.2=r41hc72bb7e_0
- r-hypergeo=1.2_13=r41hc72bb7e_1002
- r-ids=1.0.1=r41hc72bb7e_1
- r-igraph=1.2.9=r41hc81bdb1_0
- r-ini=0.3.1=r41hc72bb7e_1003
- r-insight=0.18.2=r41hc72bb7e_0
- r-ipmisc=6.0.2=r41hc72bb7e_0
- r-ipred=0.9_13=r41h67d6963_0
- r-irlba=2.3.5=r41hc2c5f09_0
- r-isoband=0.2.5=r41h9951f98_0
- r-iterators=1.0.14=r41hc72bb7e_0
- r-jcolors=0.0.4=r41hc72bb7e_2
- r-jquerylib=0.1.4=r41hc72bb7e_0
- r-jsonlite=1.7.2=r41h28b5c78_0
- r-kernsmooth=2.23_20=r41he19034d_0
- r-knitr=1.39=r41hc72bb7e_0
- r-ksamples=1.2_9=r41h28b5c78_2
- r-labeling=0.4.2=r41hc72bb7e_0
- r-labelled=2.9.0=r41hc72bb7e_0
- r-lambda.r=1.2.4=r41hc72bb7e_1
- r-later=1.2.0=r41h9951f98_0
- r-latex2exp=0.9.4=r41hc72bb7e_0
- r-lattice=0.20_45=r41h28b5c78_0
- r-lava=1.6.10=r41hc72bb7e_0
- r-lazyeval=0.2.2=r41h28b5c78_2
- r-lifecycle=1.0.1=r41hc72bb7e_0
- r-listenv=0.8.0=r41hc72bb7e_1
- r-locfit=1.5_9.4=r41h28b5c78_1
- r-lubridate=1.8.0=r41h9951f98_0
- r-magrittr=2.0.3=r41h0f1d5c4_0
- r-manipulatewidget=0.11.1=r41hc72bb7e_0
- r-mapproj=1.2.8=r41h28b5c78_0
- r-maps=3.4.0=r41h28b5c78_0
- r-markdown=1.1=r41h28b5c78_1
- r-mass=7.3_54=r41h28b5c78_0
- r-matrix=1.3_4=r41hc2c5f09_0
- r-matrixmodels=0.5_0=r41hc72bb7e_0
- r-matrixstats=0.61.0=r41h28b5c78_0
- r-mc2d=0.1_21=r41hc72bb7e_0
- r-memoise=2.0.1=r41hc72bb7e_0
- r-mervdown=0.1.1=r41_0
- r-metbrewer=0.2.0=r41hc72bb7e_0
- r-mgcv=1.8_38=r41hf27e4f0_0
- r-mime=0.12=r41h28b5c78_0
- r-miniui=0.1.1.1=r41hc72bb7e_1002
- r-modelmetrics=1.2.2.2=r41hff6cd7b_1
- r-modelr=0.1.8=r41hc72bb7e_0
- r-multcompview=0.1_8=r41hc72bb7e_1
- r-munsell=0.5.0=r41hc72bb7e_1003
- r-mvtnorm=1.1_3=r41h749f5a1_0
- r-nlme=3.1_153=r41h749f5a1_0
- r-nnet=7.3_17=r41h28b5c78_0
- r-numderiv=2016.8_1.1=r41hc72bb7e_3
- r-oompabase=3.2.9=r41hc72bb7e_1
- r-openssl=2.0.0=r41hc6995ed_0
- r-pairwisecomparisons=3.2.0=r41hc72bb7e_0
- r-paletteer=1.4.1=r41hc72bb7e_0
- r-palr=0.3.0=r41hc72bb7e_0
- r-pals=1.7=r41hc72bb7e_0
- r-parallelly=1.31.1=r41hc72bb7e_0
- r-parameters=0.18.2=r41hc72bb7e_0
- r-patchwork=1.1.1=r41hc72bb7e_0
- r-pbapply=1.5_0=r41hc72bb7e_0
- r-performance=0.9.2=r41hc72bb7e_0
- r-pheatmap=1.0.12=r41hc72bb7e_2
- r-pillar=1.7.0=r41hc72bb7e_0
- r-pkgconfig=2.0.3=r41hc72bb7e_1
- r-pkgload=1.2.4=r41h9951f98_0
- r-plogr=0.2.0=r41hc72bb7e_1003
- r-plotly=4.10.0=r41hc72bb7e_0
- r-plyr=1.8.7=r41hc4bb905_0
- r-pmcmrplus=1.9.6=r41h225c1e1_0
- r-png=0.1_7=r41h28b5c78_1004
- r-praise=1.0.0=r41hc72bb7e_1004
- r-prettyunits=1.1.1=r41hc72bb7e_1
- r-prismatic=1.1.1=r41hc72bb7e_0
- r-proc=1.18.0=r41h9951f98_0
- r-processx=3.5.2=r41h28b5c78_0
- r-prodlim=2019.11.13=r41h9951f98_1
- r-progress=1.2.2=r41hc72bb7e_2
- r-progressr=0.10.1=r41hc72bb7e_0
- r-promises=1.2.0.1=r41h9951f98_0
- r-proto=1.0.0=r41ha770c72_2003
- r-proxy=0.4_26=r41h28b5c78_0
- r-ps=1.6.0=r41h28b5c78_0
- r-purrr=0.3.4=r41h28b5c78_1
- r-r.methodss3=1.8.1=r41hc72bb7e_0
- r-r.oo=1.24.0=r41hc72bb7e_0
- r-r.utils=2.11.0=r41hc72bb7e_0
- r-r6=2.5.1=r41hc72bb7e_0
- r-ragg=1.2.1=r41hfdf247a_0
- r-rappdirs=0.3.3=r41h28b5c78_0
- r-rcolorbrewer=1.1_2=r41h785f33e_1003
- r-rcpp=1.0.7=r41h9951f98_0
- r-rcpparmadillo=0.10.8.1.0=r41h7190c71_0
- r-rcppeigen=0.3.3.9.2=r41hde7ee74_0
- r-rcpphnsw=0.3.0=r41h9951f98_0
- r-rcpptoml=0.1.7=r41h9951f98_1
- r-rcurl=1.98_1.5=r41h28b5c78_0
- r-readr=2.1.1=r41h9951f98_0
- r-readxl=1.3.1=r41h8a02945_4
- r-recipes=0.2.0=r41hc72bb7e_0
- r-rematch=1.0.1=r41hc72bb7e_1003
- r-rematch2=2.1.2=r41hc72bb7e_1
- r-remotes=2.4.2=r41hc72bb7e_0
- r-reprex=2.0.1=r41hc72bb7e_0
- r-reshape=0.8.9=r41hbe3e9c8_0
- r-reshape2=1.4.4=r41h9951f98_1
- r-restfulr=0.0.13=r41h9e43be8_1
- r-reticulate=1.25=r41h8619c4b_1
- r-rgl=0.109.6=r41h34b6b12_0
- r-rjson=0.2.20=r41h9951f98_1002
- r-rlang=1.0.2=r41hc4bb905_0
- r-rmarkdown=2.11=r41hc72bb7e_0
- r-rmpfr=0.8_9=r41hdc58f20_0
- r-robustbase=0.95_0=r41h6f100c1_0
- r-rpart=4.1.16=r41h28b5c78_0
- r-rprojroot=2.0.2=r41hc72bb7e_0
- r-rsqlite=2.2.8=r41h9951f98_0
- r-rstudioapi=0.13=r41hc72bb7e_0
- r-rsvd=1.0.5=r41hc72bb7e_0
- r-rtsne=0.15=r41he059e9c_3
- r-rvest=1.0.2=r41hc72bb7e_0
- r-sass=0.4.0=r41h9951f98_0
- r-scales=1.1.1=r41hc72bb7e_0
- r-scattermore=0.7=r41h28b5c78_0
- r-scico=1.3.0=r41hc72bb7e_0
- r-scutrboot=0.2.2=r41_0
- r-selectr=0.4_2=r41hc72bb7e_1
- r-shiny=1.7.1=r41h785f33e_0
- r-shinyjs=2.1.0=r41hc72bb7e_0
- r-sitmo=2.0.2=r41h9951f98_0
- r-snow=0.4_4=r41hc72bb7e_0
- r-sourcetools=0.1.7=r41h9951f98_1002
- r-squarem=2021.1=r41hc72bb7e_0
- r-statmod=1.4.36=r41h0661a58_0
- r-statsexpressions=1.3.3=r41hc72bb7e_0
- r-stringi=1.7.6=r41h99ba7f4_1
- r-stringr=1.4.0=r41hc72bb7e_2
- r-suppdists=1.1_9.7=r41hc4bb905_0
- r-survival=3.2_13=r41h28b5c78_0
- r-sys=3.4=r41h28b5c78_0
- r-systemfonts=1.0.3=r41h6824f6f_0
- r-tensora=0.36.2=r41h28b5c78_0
- r-testthat=3.1.1=r41h9951f98_0
- r-textshaping=0.3.6=r41hd6221ab_0
- r-tibble=3.1.7=r41h67d6963_0
- r-tidyr=1.1.4=r41h9951f98_0
- r-tidyselect=1.1.1=r41hbe3e9c8_0
- r-tidyverse=1.3.1=r41hc72bb7e_0
- r-timedate=3043.102=r41hc72bb7e_1002
- r-tinytex=0.35=r41hc72bb7e_0
- r-tzdb=0.2.0=r41h9951f98_0
- r-usethis=2.1.5=r41hc72bb7e_0
- r-utf8=1.2.2=r41h28b5c78_0
- r-uuid=1.0_3=r41h28b5c78_0
- r-vctrs=0.4.1=r41hc4bb905_0
- r-vipor=0.4.5=r41hc72bb7e_1003
- r-viridis=0.6.2=r41hc72bb7e_0
- r-viridislite=0.4.0=r41hc72bb7e_0
- r-vroom=1.5.7=r41h9951f98_0
- r-waldo=0.3.1=r41hc72bb7e_0
- r-webshot=0.5.3=r41hc72bb7e_0
- r-whisker=0.4=r41hc72bb7e_1
- r-withr=2.4.3=r41hc72bb7e_0
- r-writexl=1.4.0=r41h28b5c78_0
- r-wrs2=1.1_4=r41hbe3e9c8_0
- r-xfun=0.30=r41hc4bb905_0
- r-xml=3.99_0.8=r41h28b5c78_0
- r-xml2=1.3.3=r41h9951f98_0
- r-xtable=1.8_4=r41hc72bb7e_3
- r-yaml=2.2.1=r41h28b5c78_1
- r-zeallot=0.1.0=r41hc72bb7e_1003
- r-zip=2.2.0=r41h28b5c78_0
- readline=8.1=h05e3726_0
- tapi=1100.0.11=h9ce4665_0
- tk=8.6.11=h5dbffcc_1
- tktable=2.10=h49f0cf7_3
- xorg-kbproto=1.0.7=h35c211d_1002
- xorg-libice=1.0.10=h0d85af4_0
- xorg-libsm=1.2.3=h0d85af4_1000
- xorg-libx11=1.7.2=h0d85af4_0
- xorg-libxau=1.0.9=h35c211d_0
- xorg-libxdmcp=1.1.3=h35c211d_0
- xorg-libxt=1.2.1=h0d85af4_2
- xorg-xproto=7.0.31=h35c211d_1007
- xz=5.2.5=haf1e3a3_1
- zlib=1.2.11=h9173be1_1013
- zstd=1.5.0=h582d3a0_0
prefix: /Users/mfansler/miniconda3/envs/bioc_3_14